In a typical server-client system, a server computer is connected to several client computers or terminals via a network. In such a system, applications are executed at the server rather than at the client. The server transmits display information to the client for display at the client, and user inputs (e.g., via keyboard or mouse) at the client are transmitted to the server for processing by an application(s) executing at the server. The “client” may be an entire client computer, or alternatively an application executing at the client computer.
A server in such a system typically has an operating system that can run several client sessions concurrently. Each client user has access to various resources of the server, including the processor, data storage, application programs, etc. Software applications that are resident on the server are available to each client for independent execution by the client. Each session is independent from the other sessions and, therefore, one client cannot access information relating to another client. In this manner, the server provides a logically independent machine for each client connected to the server.
Client users frequently use peripheral devices physically attached to the client machines. For example, a user may wish to attach a printer to the user's client computer (a “local” printer) in order to print data generated by an application that is running on the server computer. To do this, currently the user must manually install the local printer and redirect the printer queue created by the server to the I/O port of the client computer to which the printer is connected. Such manual installation of peripheral devices is undesirable because it requires significant time and effort on the part of the user. U.S. Pat. No. 6,789,111 entitled “Automatic Detection And Installation Of Client Peripheral Devices By A Server”, describes a system which resolves many of these manual installation problems by automatically detecting such devices and installing and corresponding device drivers at the server.
However, one problem that can be encountered with either manual identification or automatic detection of peripheral devices is the identification of the proper driver to be installed. In order to properly install a peripheral device, the correct driver needs to be installed at the server. Typically, the client notifies the server of the correct driver to use for a particular device. However, situations can arise where the driver that the client indicates should be used for a particular peripheral device is not available at the server, thereby preventing installation of that particular device.
The invention described below addresses these disadvantages, providing for printer driver identification for a remote printer.